#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>


//******************************************************
// 练习
// 
// 1.计算n的阶乘
// 
//int main()
//{
//	int n = 0;
//	int i = 0;
//	int sum = 1;
//	printf("请输入n的值：");
//	scanf("%d", &n);
//	for (i = 1; i <= n; i++)
//	{
//		sum *= i;
//	}
//	printf("sum=%d\n", sum);
//	return 0;
//}




//2.计算1！+2！+3！+……+10！
// (初阶)
//int main()
//{
//	int i, j;
//	int sum = 1;
//	int sum1 = 0;
//	for (i = 1; i <= 3; i++)
//	{
//		for (j = 1,sum=1; j <= i; j++)
//			sum *= j;
//		sum1 += sum;
//	}
//	printf("%d", sum1);
//	return 0;
//}



//（进阶）
//2 != 1 * 2;
//3 != 1 * 2 * 3;          = 2! * 3
//4 != 1 * 2 * 3 * 4;      = 3! * 4
//5 != 1 * 2 * 3 * 4 * 5;  = 4! * 5

//int main()
//{
//	int i;
//	int sum = 1;
//	int sum1 = 0;
//	for (i = 1; i <= 3; i++)
//	{
//		sum *= i;
//		sum1 += sum;
//	}
//	printf("%d", sum1);
//	return 0;
//}



//3.在一个有序数组中查找具体的某个数字n

//int search(int arr[], int sz, int n)
//{
//	int left = 0;
//	int right = sz - 1;
//	while (left <= right)
//	{
		//int mid = (left + right) / 2;
//      int mid = left + (right - left) / 2;
//		if (n > arr[mid])
//			left = mid + 1;
//		else if (n < arr[mid])
//			right = mid - 1;
//		else
//			return mid;
//	}
//  return -1;
//}
//
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9 };
//	int n=0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	printf("请输入n的值：");
//	scanf("%d", &n);
//	int ret=search(arr, sz, n);
//	if (ret == -1)
//		printf("没找到");
//	else
//		printf("找到了，下标为%d", ret);
//	return 0;
//}



//4. 编写代码，演示多个字符从两端移动，向中间汇聚。
//#include<string.h>
//#include<windows.h>
//int main()
//{
//	char arr1[] = "welcome to China!!!!!!!";
//	char arr2[] = "***********************";
//	int sz = strlen(arr2);
//	int left = 0;
//	int right = sz - 1;
//	while (left <= right)
//	{
//		arr2[left] = arr1[left];
//		arr2[right] = arr1[right];
//		printf("%s\n", arr2);
//		Sleep(500);
//		system("cls");
//		left++;
//		right--;
//	}
//	printf("%s\n", arr2);
//	return 0;
//}





// 5.编写代码实现，模拟用户登录情景，并且只能登录三次。（只允许输入三次密码，
//如果密码正确则提示登录成功，如果三次均输入错误，则退出程序。)

//#include<string.h>
//int main()
//{
//	char password[] = {0};
//	int i = 0;
//	for (i = 1; i <= 3; i++)
//	{
//		printf("请输入密码：");
//		scanf("%s", password);
//		int ret = strcmp(password, "hello");
//		if (ret == 0)
//		{
//			printf("登录成功\n");
//			break;
//		}
//      else
//			printf("密码错误\n");
//          
//	}
//	if (i == 4)
//		printf("退出程序");
//	return 0;
//}
//




//***************************************************************
//猜数字游戏
//#include<stdlib.h>
//#include<time.h>
//void menu()
//{
//	printf("************************************\n");
//	printf("*********1.play      0.exit*********\n");
//	printf("************************************\n");
//}
//
//void game()
//{
//	//1.生成一个随机数
//	int aa = rand() % 100 + 1;
//	//printf("%d\n", aa);
//	//2.猜数字
//	int guess;
//	while (1)
//	{
//		printf("请猜数字：");
//		scanf("%d", &guess);
//		if (aa < guess)
//			printf("猜大了\n");
//		else if (aa > guess)
//			printf("猜小了\n");
//		else
//		{
//			printf("恭喜你，猜对了！！\n");
//			break;
//		}
//	}
//}
//
//int main()
//{
//	int input = 0;
//	srand((unsigned int)time(NULL));
//	do
//	{
//		menu();
//		printf("请选择:");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			game();
//			break;
//		case 0:
//			printf("退出游戏\n");
//			break;
//		default:
//			printf("输入错误，请重新输入\n");
//			break;
//		}
//	} while (input);
//	return 0;
//}



//*************************************************************************
//作业
//1.编写程序数一下 1到 100 的所有整数中出现多少个数字9

//int main()
//{
//	int i;
//	int count = 0;
//	for (i = 1; i <= 99; i++)
//	{
//		if (i % 10 == 9)//个位为9
//			count++;
//		if (i / 10 == 9)//十位为9
//			count++;
//	}
//	printf("count=%d", count);
//	return 0;
//}